<template>
  <div>
    <common-head :title="$route.name"/>
    <div class="wrap">
      <van-address-list
        v-model="chosenAddressId"
        :list="list"
        default-tag-text="默认"
        @add="onAdd"
        @edit="onEdit"
        @select="selectContact"
      />
    </div>
  </div>
</template>

<script>
import CommonHead from '../../components/CommonHead.vue'
import { fetchContacts } from '_api'
import { getToken } from '_utils'
export default {
  data () {
    return {
      chosenAddressId: -1,
      list: [
      ]
    }
  },
  created () {
    this.fetchContacts()
  },
  methods: {
    selectContact (contact) {
      console.log(contact)
      // 回到订单页
      this.$router.replace({
        path: '/orderCreate',
        query: {
          contactId: contact.id
        }
      })
    },
    fetchContacts () {
      // 获取所有联系人
      fetchContacts({
        token: getToken()
      }).then(res => {
        if (res.data.code === 0) {
          const contacts = res.data.data.result
          // console.log(contacts)
          // 创建空数组 保存 映射好的数组
          const contactsArr = []
          contacts.forEach(contact => {
            // 创建空对象 保存映射好的 对象
            const contactObj = {}
            for (const key in contact) {
              if (key === 'linkMan') {
                contactObj.name = contact[key]
              } else if (key === 'mobile') {
                contactObj.tel = contact[key]
              } else {
                contactObj[key] = contact[key]
              }
            }
            contactsArr.push(contactObj)
            this.list = contactsArr
            this.initChoseId()
          })
        }
      })
    },
    initChoseId () {
      /*
        数组是空啥都不干
        有默认联系人 choseId 等于默认联系人的id
        否则 等于 第一个 联系人的id
      */
      if (this.list.length === 0) {
        return false
      }
      const defaultContact = this.list.find(contact => contact.isDefault)
      if (defaultContact) {
        this.chosenAddressId = defaultContact.id
      } else {
        // 没有默认联系人
        this.chosenAddressId = this.list[0].id
      }
    },
    onAdd () {
      this.$router.push('/contactAddOrder')
    },
    onEdit (contact) {
      // 进入编辑联系人
      this.$router.push({
        path: '/contactUpdate',
        query: {
          id: contact.id
        }
      })
    }
  },
  components: {
    CommonHead
  }
}
</script>

<style lang="scss" scoped>
.wrap{
  padding-top: 46px;
}
</style>
